
MangoDisk 的繁體中文介面;圖中的容量來自測試環境。
身為開發者,我的電腦長期放著 Node.js、Rust、Xcode、Gradle、Python 和各種測試專案。真正讓磁碟空間慢慢消失的,通常不是單一大型檔案,而是散落在不同位置的建置成果、套件快取、記錄檔與應用程式殘留。
前幾天我檢查 MangoDisk 專案本身的磁碟用量,Rust 的 target 已累積到 27 GB;同一台電腦上的 Cargo registry 壓縮快取只有 189 MB。兩者都可以重新產生,但清理後的代價不同:前者需要重新編譯,後者可能需要重新下載相依套件。
我以前用腳本處理這些資料,但路徑和工具版本會改變,腳本也很難清楚呈現即將刪除的內容和後果。因此我開始開發 MangoDisk,希望先整理出空間去向,再讓使用者決定要不要清理。

Rust 負責掃描與統計,介面再用樹狀圖和清單呈現資料夾的空間佔比。
對磁碟工具來說,困難的不是列出檔案,而是判斷資料的用途、可恢復性和安全邊界。同樣被稱為快取的資料,可能是能立即重建的暫存內容,也可能混有設定、憑證或使用者檔案。
MangoDisk 因此把清理流程拆成:
唯讀掃描 → 規則比對 → 分類與風險提示 → 使用者選取 → 執行前驗證 → 清理
掃描階段不會自動刪除。結果會先顯示類別、容量、路徑和風險;使用者確認選取內容後,才會執行清理。CLI 的預設命令也只掃描,實際刪除需要明確指定動作並完成確認。
另一個挑戰是讓規則可以被審查。一般檔案系統清理與專案建置成果會用經過建置期驗證的 TOML 描述。以下是 Rust 專案規則的精簡片段:
id = "project.rust-build-artifacts"
schema_version = 1
platforms = ["macos", "windows"]
risk = "recoverable"
default_selected = false
[match]
file_names_any = ["Cargo.toml"]
[[artifacts]]
kind = "relativeDirectory"
path = "target"
這條規則先用 Cargo.toml 確認專案身分,只比對專案內的相對路徑,風險標示為 recoverable,而且預設不選取。建置時會驗證 schema、平台、路徑邊界、風險等級和佐證資料,不符合限制的規則無法進入正式規則庫。
我目前用四個原則控制清理風險:
如果無法清楚說明資料來源與刪除後果,我會先不把規則加入正式版本。完整規則與修改紀錄都公開在 GitHub:MangoDisk 清理規則庫

掃描結果保留類別、容量與選取狀態,讓使用者在清理前自行確認。
我是 MangoDisk 的開發者 Harry。專案仍在持續增加和驗證跨平台清理規則,如果你有實際遇到的磁碟空間問題,或發現某個工具的快取與官方說明不一致,歡迎到 GitHub 提供可驗證的資訊。